package chap3_16;

import java.io.*;

/**
 * @author https://gitee.com/W_Jun
 * @date 2021-12-15 21:55
 * @Description
 */
public class CopyFolderDemo {
    public static void main(String[] args) throws IOException {
        //创建数据源目录File对象，路径是D:\\project\\test
        File srcFolder = new File("D:\\project\\test");
        //获取数据源目录File对象的名称（test）
        String srcFolderName = srcFolder.getName();
        //创建目的地目录File对象，路径名是模块名+test组成（chapter03\\src\\chap3_16\\test）
        File destFolder = new File("chapter03-字符流\\src\\chap3_16", srcFolderName);
        //判断目的地目录对应的File是否存在，如果不存在，就创建
        if (!destFolder.exists()) {
            destFolder.mkdir();
        }
        //获取数据源目录下所有文件的File数组
        File[] listFiles = srcFolder.listFiles();
        //遍历File数组，得到每一个File对象，该File对象，其实就是数据源文件。
        for (File srcFile : listFiles) {
            //获取数据源文件File对象的名称
            String srcFileName = srcFile.getName();
            //创建目的地文件File对象，路径名是目的地目录+mn.jpg组成
            File destFile = new File(destFolder,srcFileName);
            //复制文件
            copyFile(srcFile, destFile);
        }
    }

    private static void copyFile(File srcFile, File destFile) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
        byte[] bys = new byte[1024];
        int len;
        while ((len = bis.read(bys)) != -1) {
            bos.write(bys, 0, len);
        }
        bos.close();
        bis.close();
    }
}
